package com.lightsaber.trade.as.service.dataimport;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang.builder.ToStringBuilder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.lightsaber.trade.as.service.param.ParamObject;

@Service
@Transactional
public class DataimportService {

    private static class ParamObjectImpl implements ParamObject {

        private static final long serialVersionUID = -4777370550099009370L;
        private String code;
        private String desc;

        public ParamObjectImpl(final String code, final String desc) {
            this.code = code;
            this.desc = desc;
        }

        public static ParamObject make(final String code, final String desc) {
            return new ParamObjectImpl(code, desc);
        }

        public static List<ParamObject> makeList(final String[][] paramss) {

            List<ParamObject> list = new ArrayList<ParamObject>();

            for (String[] params : paramss) {
                if (params.length == 2) {
                    list.add(make(params[0], params[1]));
                } else {
                    throw new IllegalArgumentException();
                }
            }

            return list;
        }

        @Override
        public String getCode() {
            return code;
        }

        @Override
        public String getDesc() {
            return desc;
        }

        @Override
        public String toString() {
            return ToStringBuilder.reflectionToString(this);
        }

        @Override
        public void setCode(final String code) {
            this.code = code;
        }

        @Override
        public void setDesc(final String desc) {
            this.desc = desc;
        }
    }

    public List<ParamObject> getHourList() {
        String paramss[][] = {
                // {"00","00"},
                { "01", "01" }, { "02", "02" }, { "03", "03" }, { "04", "04" }, { "05", "05" },
                { "06", "06" }, { "07", "07" }, { "08", "08" }, { "09", "09" }, { "10", "10" },
                { "11", "11" }, { "12", "12" }, { "13", "13" }, { "14", "14" }, { "15", "15" },
                { "16", "16" }, { "17", "17" }, { "18", "18" }, { "19", "19" }, { "20", "20" },
                { "21", "21" }, { "22", "22" }, { "23", "23" } };
        return ParamObjectImpl.makeList(paramss);
    }

    public List<ParamObject> getMinList() {
        String paramss[][] = {
                // {"00","00"},
                { "01", "01" }, { "02", "02" }, { "03", "03" }, { "04", "04" }, { "05", "05" },
                { "06", "06" }, { "07", "07" }, { "08", "08" }, { "09", "09" }, { "10", "10" },
                { "11", "11" }, { "12", "12" }, { "13", "13" }, { "14", "14" }, { "15", "15" },
                { "16", "16" }, { "17", "17" }, { "18", "18" }, { "19", "19" }, { "20", "20" },
                { "21", "21" }, { "22", "22" }, { "23", "23" }, { "24", "24" }, { "25", "25" },
                { "26", "26" }, { "27", "27" }, { "28", "28" }, { "29", "29" }, { "30", "30" },
                { "31", "31" }, { "32", "32" }, { "33", "33" }, { "34", "34" }, { "35", "35" },
                { "36", "36" }, { "37", "37" }, { "38", "38" }, { "39", "39" }, { "40", "40" },
                { "41", "41" }, { "42", "42" }, { "43", "43" }, { "44", "44" }, { "45", "45" },
                { "46", "46" }, { "47", "47" }, { "48", "48" }, { "49", "49" }, { "50", "50" },
                { "51", "51" }, { "52", "52" }, { "53", "53" }, { "54", "54" }, { "55", "55" },
                { "56", "56" }, { "57", "57" }, { "58", "58" }, { "59", "59" } };
        return ParamObjectImpl.makeList(paramss);
    }

}
